轻量级进程(LWP)是一种实现多任务的方法。

  • 与普通进程相比,LWP与其他进程共享所有(或大部分)它的逻辑地址空间和系统资源;
  • 与线程相比,LWP有它自己的进程标识符,并和其他进程有着父子关系;这是和类Unix操作系统的系统调用vfork()生成的进程一样的。另外,线程既可由应用程序管理,又可由内核管理,而LWP只能由内核管理并像普通进程一样被调度。Linux内核是支持LWP的典型例子。

LWP与普通进程的区别也在于它只有一个最小的执行上下文和调度程序所需的统计信息,而这也是它之所以被称为轻量级的原因。

在大多数系统中,LWP与普通进程的区别也在于它只有一个最小的执行上下文和调度程序所需的统计信息,而这也是它之所以被称为轻量级的原因。一般来说,一个进程代表程序的一个实例,而LWP代表程序的执行线程(其实,在内核不支持线程的时候,LWP可以很方便地提供线程的实现)。因为一个执行线程不像进程那样需要那么多状态信息,所以LWP也不带有这样的信息。

为什么说linux是轻量级进程?

因为linux并没有为线程准备特定的数据结构。在内核看来,只有进程而没有线程,在调度时也是当做进程来调度。
linux所谓的线程其实是与其他进程共享资源的进程。为什么说是轻量级?在于它只有一个最小的执行上下文和调度程序所需的统计信息。他是进程的执行部分,只带有执行相关的信息。